// 引入API请求
import { login, getUserInfo, getUserDetailById } from '@/api/user'
// 引入本地存储
import { setToken, getToken, removeToken } from '@/utils/auth'
export default {
  namespaced: true,
  state: {
    token: getToken() || '',
    // 保存用户数据
    userInfo: {}
  },
  mutations: {
    // 保存获取的token数据
    getToken(state, payload) {
      state.token = payload
      // 保存到本地存储中Cookies中
      setToken(payload)
    },
    // 保存获取的用户数据
    userInfo(state, payload) {
      state.userInfo = payload
    },
    // 清空state和Cookies中的数据
    removeData(state) {
      state.token = ''
      state.userInfo = {}
      // 清空本地存储
      removeToken()
    }
  },
  actions: {
    // 发送请求，获取token数据
    async asyncSetToken(ctx, payload) {
      const res = await login(payload)
      // console.log(res)
      ctx.commit('getToken', res)
      return res
    },
    // 发送请求，获取用户数据
    async asyncGetUser(ctx) {
      const res = await getUserInfo()
      // console.log(res)
      // 发送请求获取图片数据
      const data = await getUserDetailById(res.userId)
      // console.log(data)
      ctx.commit('userInfo', { ...res, ...data })
    }
  }
}

